知识点名称:Android图形基础
编号: K8-1
前驱知识点编号:K1-3,K4-1
作者:
讲义内容:
为了让一款APP拥有一个漂亮的UI界面,基本的绘图基础必不可少。2D下的Android图形绘制主要基于Android自身的SDK提供,主要存放在android.graphics和android.graphics.drawable包中,使用这些API能够在一个画布(canvas)上渲染自己的定制图形,也能够修改那些既存的View对象,来定制它们的外观和视觉效果。在绘制2D图形时,通常要使用以下两种方法中的一种:
把图形或动画绘制到布局中的一个View对象中。在这种方式中,图形的绘制是由系统通常的绘制View层次数据的过程来处理的---只需简单的定义要绘制到View对象内的图形即可。
把图形直接绘制在一个画布(Canvas)对象上。这种方法,要亲自调用相应类的onDraw()方法,或者调用Canvas对象的一个draw…()方法(如drawPicture())。在这个过程中,还可以控制任何动画。
方法一适用于不需要动态变化和没有游戏性能要求的一个简单的图形绘制,方法二适用于程序需要经常进行重新绘制的情况,如视频游戏等APP。重新绘制的方法有多种:
在与UI的Activity相同的线程中,创建布局中一个定制的View对象组件,就先要调用invalidate()方法,然后处理onDraw()回调方法;
在一个独立的线程中,管理着SurfaceView对象,并且使用线程来执行把图形绘制到Canvas对象上的任务(不需要请求invalidate()方法)